package com.fy.common.entity;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.experimental.Accessors;

/**
 * sk_im_group_member
 * @author zhshuo
 */
@Data
@Accessors(chain = true)
@ApiModel(value="generate.SkImGroupMember群组成员")
public class SkImGroupMember implements Serializable {

    @TableId(type = IdType.ID_WORKER)
    private Long id;

    /**
     * 群ID
     */
    @ApiModelProperty(value="群ID")
    private Long skImGroupId;

    /**
     * 用户ID
     */
    @ApiModelProperty(value="用户ID")
    private Long skImUserId;

    /**
     * 用户角色;群主  管理员  成员
     */
    @ApiModelProperty(value="用户角色;1群主  2管理员  3成员")
    private Integer userRole;

    /**
     * 我在本群的昵称
     */
    @ApiModelProperty(value="我在本群的昵称")
    private String userNickName;

    /**
     * 群聊备注
     */
    @ApiModelProperty(value="群聊备注")
    private String groupNickName;

    /**
     * 最后发言时间
     */
    @ApiModelProperty(value="最后发言时间")
    private Date lastChatTime;

    /**
     * 最新的消息序列号
     */
    @ApiModelProperty(value="最新的消息序列号")
    private Long lastMsgId;

    /**
     * 状态;正常  禁言
     */
    @ApiModelProperty(value="状态;0正常  1禁言 2 退出")
    private Integer status;

    /**
     * 群消息提示;true 正常 false 免打扰
     */
    @ApiModelProperty(value="群消息提示;true 正常 false 免打扰")
    private Boolean messageHint;

    /**
     * 禁言开始时间
     */
    @ApiModelProperty(value="禁言开始时间")
    private Date disableStart;

    /**
     * 禁言结束时间
     */
    @ApiModelProperty(value="禁言结束时间")
    private Date disableEnd;

    /**
     * 禁言时长
     */
    @ApiModelProperty(value="禁言时长")
    private Long disableDuration;

    /**
     * 是否置顶
     */
    @ApiModelProperty(value="是否置顶")
    private Boolean isTop;

    /**
     * 置顶时间;多个置顶 按照此排序
     */
    @ApiModelProperty(value="置顶时间;多个置顶 按照此排序")
    private Date topTime;

    /**
     * 租户号
     */
    @ApiModelProperty(value="租户号")
    private String tenantId;

    /**
     * 乐观锁
     */
    @ApiModelProperty(value="乐观锁")
    private String revision;

    /**
     *
     */
    @ApiModelProperty(value="加群方式 1 本人申请 2 邀请加群")
    private Integer joinWay;

    /**
     *
     */
    @ApiModelProperty(value="邀请人")
    private Long inviteUser;

    /**
     * 加入时间
     */
    @ApiModelProperty(value="加入时间")
    private Date joinTime;

    /**
     * 更新人
     */
    @ApiModelProperty(value="更新人")
    private Long lastUpdateBy;

    /**
     * 更新时间
     */
    @ApiModelProperty(value="更新时间")
    private Date lastUpdateTime;

    private static final long serialVersionUID = 1L;

    @JsonIgnore
    public Boolean getTop() {
        return isTop;
    }

}